Добавление глобального контекста

Глобальный контекст это очень простая вещь - все свойства и методы, которые можно использовать в скрипте непосредственно - они глобальные, т.е. расположены в глобальном контексте.

Например, функция Сообщить() - глобальная. Мы используем ее сразу, без уточнения области видимости.

Устройство глобального контекста

Технически, глобальных контекстов - несколько, разделены по функциональному назначению. Глобальный контекст - это класс, по структуре очень похожий на обычный класс.

Класс глобального контекста должен быть унаследован от GlobalContextBase<>.

namespace ScriptEngine.HostedScript.Library
{
	[GlobalContext(Category="Файловые операции")]
	public class FileOperations : GlobalContextBase<FileOperations>
	{
		[ContextMethod("КопироватьФайл", "CopyFile")]
		public void CopyFile(string source, string destination)
		{
			System.IO.File.Copy(source, destination, true);
		}
		

Кроме того, класс нужно пометить атрибутом GlobalContextAttribute Это позволит движку OneScript автоматически найти его и загрузить в глобальную область видимости.

Обратите внимание на параметр атрибута GlobalContext. В параметре Name можно указать раздел синтакс-помощника, в который попадет документация по методам данного глобального контекста.

Методы глобального контекста

Все методы класса, отмеченные атрибутом ContextMethodAttribute будут видны в скрипте, как глобальные.